package Model;

import java.awt.Color;
import java.util.ArrayList;

import View.Megjelenitendo;

/**
 * 
 * Egy adakály a pályán, így amelyik mezőn a kavics van oda nem lehet lépni.
 *
 */

public class Kavics extends Akadaly
{
	public Kavics()
	{
		color = Color.LIGHT_GRAY;
	}

	/** itt számoljuk, hány kavics lökte meg egymást */
	private static int hanyadikKavicsLokes;
	
	/**
	 * interakció hangyászsünnel
	 * @param hsun Egy Hangyászsün objektum.
	 */
	public void ittVan(HangyaszSun hsun)
	{
		hanyadikKavicsLokes = 0;
		
		ArrayList<Mezo> szomszedok = holvagyok.getSzomszedok();
		
		int merrolToltak = szomszedok.indexOf(hsun.holvagyok());
		int merreToljak = (merrolToltak+3)%6;
		if(szomszedok.get(merreToljak) == null) {
			hanyadikKavicsLokes = 12;
			super.ittVan(hsun);
			return;
		}
			
			
			
			szomszedok.get(merreToljak).ittVan(this);
		
		if(hanyadikKavicsLokes < 2)
		{
			tol(szomszedok.get(merreToljak));
		}
		else {
			super.ittVan(hsun);//zsolt szerint mukodik !!!!!!!!!! --- A ZSOLT ELBASZTA
			/*
			 * 
			 * 
			 * 
			 *   LEHET NEM MEGY
			 * 
			 * 
			 * 
			 */
		}
	}
	
	/**
	 * Itt még nem implementált függvény.
	 * @param k ez a kavics lökődik rá
	 */
	public void ittVan(Kavics k)
	{
		
		ArrayList<Mezo> szomszedok = holvagyok.getSzomszedok();
		
		int merrolToltak = szomszedok.indexOf(k.holvagyok());
		int merreToljak = (merrolToltak+3)%6;
		
		hanyadikKavicsLokes ++;
		
		if(szomszedok.get(merreToljak) == null) return;
		
		if(hanyadikKavicsLokes<2)
		{
			szomszedok.get(merreToljak).ittVan(this);
			if(hanyadikKavicsLokes<2) {
				tol(szomszedok.get(merreToljak));
			}
			
		}
		
	}
	
	public void tol(Mezo hovaTolnak)// odebbgurul
	{
		iderak(hovaTolnak);
	}
	
	public String kiir()
	{
		return "K(" + azonosito + ")";
	}
}